home *** CD-ROM | disk | FTP | other *** search
-
- A C C 2 C O M P . T X T
-
- Release Notes for Compatibility Layer
-
- Microsoft Visual Basic (R) 3.0 -- Microsoft Access (R) 2.0
-
- (C) Copyright Microsoft Corporation, 1994
-
-
- This document describes the Microsoft Jet Database Engine version
- 2.0/Visual Basic version 3.0 Compatibility Layer, which enables
- VisualBasic version 3.0 and applications created with Visual Basic
- version 3.0 to use data stored in Microsoft Access version 2.0
- databases.
-
- ------------------------
- How To Use This Document
- ------------------------
-
- To view this document on screen using Microsoft Windows Notepad,
- maximize the Notepad window.
-
- To print this document, open it using Windows Write, Microsoft
- Word, or another word processor. Then select the entire document
- and format the text in 10-point Courier font before printing.
-
- --------
- Contents
- --------
-
- 1. Summary
- 2. Installing the Compatibility Layer
- 3. Limitations of the Compatibility Layer
- 4. Microsoft Jet Database Engine 1.1 Compatibility Issues
- 5. Adapting Your .INI Files
- 6. Availability of Version 2.0 Jet Database Engine Features
-
- -----------
- 1. Summary
- -----------
-
- Microsoft Access version 2.0 uses a file format for database
- (.MDB) files that is different from the format used by Microsoft
- Access versions 1.1 and 1.0. Microsoft Visual Basic version 3.0
- cannot use databases in Microsoft Access 2.0 format. If you want
- to share .MDB format databases between Microsoft Access 2.0 and
- Visual Basic 3.0 applications, you must either:
-
- ** Keep the .MDB files in 1.1 format, which both Microsoft
- Access 2.0 and Visual Basic 3.0 can use.
-
- ** Install the Jet Database Engine 2.0/Visual Basic 3.0
- Compatibility Layer included on this disk.
-
- The rest of this document describes the Compatibility Layer.
-
- The files on this disk enable Visual Basic 3.0 (Standard or
- Professional Edition) and applications created with Visual Basic
- 3.0 to use the version 2.0 Jet database engine to read and write
- data stored in Microsoft Access 2.0 databases. If your Visual
- Basic 3.0 application doesn't use Microsoft Access 2.0 databases,
- you won't significantly benefit from using the Compatibility
- Layer. If you access remote data through attached tables in
- databases that use the Jet database engine, you will benefit, but
- you may need to make minor modifications to the application source
- code. If you don't have access to the source code, you may want to
- reconsider converting to the version 2.0 Jet database engine.
-
- ---------------------------------------
- 2. Installing the Compatibility Layer
- ---------------------------------------
-
- Before you begin, make backup copies of the existing Visual Basic
- 3.0 data access files that will be either replaced or modified.
- These include the following files.
-
- Table 2.1 Files That Are Replaced or Modified
- by the Compatibility Layer
- ---------------------------------------------------
- File Description
- ---------------------------------------------------
- VBDB300.DLL Visual Basic to Jet database engine
- 1.1 interface DLL
- PDCTJET.DLL Run-time DLL for Crystal Reports
- PDIRJET.DLL Run-time DLL for Crystal Reports
- PDBJET.DLL Run-time DLL for Crystal Reports
- CRW.EXE Crystal Report Designer application
- VB.INI Visual Basic initialization file
- SETUPWIZ.INI Setup Wizard initialization file
-
- ----------------------------------------------------------
- NOTE You may not have all these files on your system; for
- example, CRW.EXE is included only in the Professional
- Edition of Visual Basic 3.0.
- -----------------------------------------------------------
-
- To upgrade your existing Visual Basic 3.0 Standard or Professional
- Edition to support the version 2.0 Jet database engine, you need
- the following files.
-
- Table 2.2 Files Needed to Upgrade Visual Basic 3.0
- ----------------------------------------------------
- File Description
- ----------------------------------------------------
- MSAJT200.DLL Version 2.0 Jet database engine
- MSAJT112.DLL Jet Database Engine 2.0/Visual Basic
- 3.0 Compatibility Layer
- VBDB300.DLL Visual Basic to Jet database engine support DLL
- BTRV200.DLL Btrieve ISAM driver library
- PDX200.DLL Paradox ISAM driver library
- XBS200.DLL Microsoft FoxPro ISAM driver library
- CRWACC20.EXE Program that modifies Crystal Reports files
- to work with Microsoft Access 2.0 databases
- SETUP.EXE Application that installs the Compatibility Layer
- ACC2COMP.TXT This file
-
- >>>To install the Compatibility Layer
- -------------------------------------
- 1. Insert the Compatibility Layer disk into drive A.
- 2. From the File menu in the Windows Program Manager or
- File Manager, choose Run.
- 3. Type a:setup
- 4. Follow the Setup instructions on screen.
-
- Once Setup is complete, you may not need to do to anything else to
- your Visual Basic application, unless you've included code for
- creating or compacting databases, or code that specifically refers
- to version 1.1 installable ISAM drivers. Details on how to deal
- with these and other contingencies are discussed in the following
- sections.
-
- CRWACC20.EXE is an MS-DOS-based program that enables Crystal
- Reports for Visual Basic to work with the version 2.0 Jet database
- engine. It modifies the following files:
-
- ** CRW.EXE
- ** PDBJET.DLL
- ** PDIRJET.DLL
- ** PDCTJET.DLL
-
- The program looks for these files in the current directory or in a
- directory passed in as part of the command line when it is run. To
- modify these files, you must run this program after running Setup.
- Once the program has modified the files it is of no further use.
- However, you might reinstall Crystal Reports after you install the
- Compatibility Layer, so you may want to run the program again
- later.
-
- >>>To run CRWACC20.EXE
- ----------------------
- * At the command prompt, type CRWACC20 <path to CRW.EXE>
- For example, if CRW.EXE is in a VB subdirectory
- called REPORT, you type this:
- CRWACC20 c:\vb\report
-
- If CRWACC20.EXE finds the files in the specified directory, it
- modifies them. If you don't specify a path, it looks in the
- current directory. When this program modifies a file, the date for
- the file is set to the current date.
-
- After you run Setup, examine your VB.INI file for references to
- the Jet database engine 1.1 installable ISAM drivers (BTRV110.DLL,
- PDX110.DLL, XBS110.DLL). Replace any references to these drivers
- with the new Jet database engine 2.0 driver names (BTRV200.DLL,
- PDX200.DLL, XBS200.DLL). If you use the Paradox driver
- (PDX200.DLL), you must also add the entry "ParadoxNetStyle=3.x" to
- the [Paradox ISAM] section of the VB.INI file. In addition, you
- need to modify the .INI files of any executable applications
- you've created. For example, if you have an application named
- BREAD.EXE, you'd have to modify the BREAD.INI file as well. For an
- example of new .INI entries, see Section 5, "Adapting Your .INI
- Files," later in this document.
-
- You should also change the entries in SETUPWIZ.INI to specify the
- new files used in the Compatibility Layer. SETUPWIZ.INI is used
- with the Setup Wizard to create distribution disks for your
- application. Once you've installed the Compatibility Layer, any
- applications you create that perform data access always use the
- version 2.0 Jet database engine, even if you're accessing data in
- earlier .MDB formats or other file formats. Therefore, whenever
- you distribute an application created in Visual Basic 3.0 that
- performs data access, you need to include the files listed
- previously in Table 2.2. (You're free to distribute these files
- with your application.) For an example of new entries for the
- SETUPWIZ.INI file, see Section 5, "Adapting Your .INI Files,"
- later in this document.
-
- Setup doesn't remove the version 1.1 Jet database engine files
- from your Windows System directory. If you have no other
- application using those files (such as Microsoft Access 1.1), you
- can delete them. As a precaution, however, you may want to rename
- them or move them to another directory for a few days before
- deleting them to ensure that no other application uses them.
-
- ------------------------------------------
- 3. Limitations of the Compatibility Layer
- ------------------------------------------
-
- Although the Compatibility Layer enables your Visual Basic 3.0
- applications to read and write data stored in Microsoft Access 2.0
- databases, it doesn't give your applications access to all the new
- Jet database engine 2.0 objects and features because the existing
- Visual Basic 3.0 language doesn't support programmatic access to
- these new features.
-
- When your Visual Basic 3.0 application manipulates data in
- Microsoft Access 2.0 databases, you'll encounter the following
- limitations:
-
- ** New Jet database engine 2.0 errors, which result from
- new database engine behavior, will be returned as unknown
- errors ("Reserved error <error number.>"). The error
- numbers listed in the error messages are version 2.0
- Jet database engine numbers. To determine the message
- associated with an error number, search for "error codes"
- in Microsoft Access 2.0 Help.
-
- ** Visual Basic version 3.0 doesn't take advantage of any
- of the new Jet database engine 2.0 properties, objects,
- or methods. See Section 6, "Availability of Version 2.0
- Jet Database Engine Features," at the end of this document
- for a list of major new features and information about
- their accessibility from Visual Basic 3.0 applications.
-
- ** The version 2.0 Jet database engine supports eight new
- collating orders (Arabic, Russian, Czech, Greek, Hebrew,
- Hungarian, Polish, and Turkish), which are unavailable to
- Visual Basic 3.0. Databases created in any of these
- languages are available in read-only mode only. Data in
- the languages may not sort correctly when accessed by
- Visual Basic.
-
- ** The version 2.0 Jet database engine allows the entry of
- zero-length strings as well as Null values. Because of
- this, Null values aren't automatically converted to
- zero-length strings when they're entered into version
- 2.0 databases. This may cause some updates to fail
- because of validation rules that require zero-length
- strings, resulting in a message for an unknown error
- ("Reserved error <error number.>"). To fix the error,
- you have to either use Microsoft Access 2.0 to change
- the rule or not enter Null data into the database.
- For more information, see Section 6, "Availability of
- Version 2.0 Jet Database Engine Features."
-
- ** You can't open a dynaset on a remote database (such as a
- SQL Server database) within a transaction using the version
- 2.0 Jet database engine. For example, the following code will
- fail as the dynaset is created:
-
- Dim MyDB As Database, MyDS As Dynaset
- Set MyDB = OpenDatabase("") ' Open user-selected external
- ' database.
- MyDB.BeginTrans ' Begin transaction.
- ' Open first table.
- Set MyDS = MyDB.CreateDynaset(MyDB.TableDefs(0))
-
-
- However, if you attach tables from the remote database to
- a Microsoft Access database, you can create dynasets on
- those tables within transactions. (Note that access to
- remote data is faster if the tables are attached.)
-
- -----------------------------------------------------------
- 4. Microsoft Jet Database Engine 1.1 Compatibility Issues
- ------------------------------------------------------------
-
- When you use the Compatibility Layer to access data in version 2.0
- format, you should keep the following issues in mind:
-
- ** Because the Compatibility Layer is uniquely named
- (MSAJT112.DLL), it shouldn't cause any problems with
- applications (such as Microsoft Access 1.1) that use
- the file MSAJT110.DLL. Jet database engine 1.1
- installable ISAM drivers can't be used by the version
- 2.0 database engine. If the version 1.1 drivers are
- listed in the [Installable ISAM] section of your
- .INI file, an error will occur when you attempt to
- use your application to access data in any of these
- database formats.
-
- ** Visual Basic 3.0 applications that use the version
- 2.0 Jet database engine may be able to update data
- in situations in which they previously could not (for
- example, the "one" side of a one-to-many relationship).
- However, applications can't update data when the change
- would orphan records on the many side of a recordset.
-
- ** For some new SQL reserved words, you must enclose the
- word in brackets ([ ]) if you want to use it as part
- of an identifier (for example, a table or field name)
- in the context of an SQL string. For a list of the Jet
- database engine 2.0 SQL reserved words, search Microsoft
- Access 2.0 Help for "SQL."
-
- ** By default, the CreateDatabase function and CompactDatabase
- statement now create databases in Jet database engine 2.0
- format. You can override this default behavior by using
- the DB_VERSION10 constant (in the file DATACONS.TXT). Using
- this constant creates a version 1.1 database, not a version
- 1.0 database. You can't create version 1.0 databases.
- The following table shows which type of database is created
- when you use CreateDatabase and CompactDatabase with and
- without DB_VERSION10.
-
- -----------------------------------------------------------------
- Jet database engine Creates by default With DB_VERSION10
- -----------------------------------------------------------------
- Version 1.1 Version 1.1 database Version 1.0 database
- Version 2.0 Version 2.0 database Version 1.1 database
-
- ------------------------------
- 5. Adapting Your .INI Files
- ------------------------------
-
- Your .INI file is used by the Jet database engine to locate driver
- files. When you're designing your application, the VB.INI file
- contains entries that point to each of the installable ISAM
- drivers your application will need. If you're creating an
- executable Visual Basic 3.0 program, you'll need to create an .INI
- file for the application that also contains these entries. For
- example, if your application is named CAT.EXE, you'll need to
- create an .INI file called CAT.INI and add the necessary entries.
-
- Shown below is the default [Installable ISAM] section of the
- VB.INI file. Although it includes entries for all the installable
- ISAM drivers, the .INI file you create for your application may
- need only one of these entries. If you use the Paradox driver
- (PDX200.DLL), you also need to add a line to the [Paradox ISAM]
- section of your .INI files. You don't need to change any of the
- other entries in your .INI files.
-
- Default entries for VB.INI and <appname>.INI
- ------------------------------------------------------------------
- [Installable ISAMs]
- Paradox 3.X=C:\VB\PDX200.DLL ;Path of the Paradox 3.x driver
- Paradox 4.X=C:\VB\PDX200.DLL ;Path of the Paradox 4.x driver
- FoxPro 2.0=C:\VB\XBS200.DLL ;Path of the Microsoft FoxPro 2.0
- driver
- FoxPro 2.5=C:\VB\XBS200.DLL ;Path of the Microsoft FoxPro 2.5
- driver
- dBASE III=C:\VB\XBS200.DLL ;Path of the dBASE III driver
- dBASE IV=C:\VB\XBS200.DLL ;Path of the dBASE IV driver
- Btrieve=C:\VB\BTRV200.DLL ;Path of the Btrieve driver
-
- [Paradox ISAM]
- ParadoxNetStyle=3.x ;Required to open Paradox
- databases
-
- ---------------------------------------------------------
- NOTE You don't need new ODBC drivers to use the version
- 2.0 Jet database engine; it works correctly with the ODBC
- drivers that were included with Visual Basic version 3.0.
- ---------------------------------------------------------
-
- In addition, you can adapt SETUPWIZ.INI to accommodate the new
- drivers and additional files. You can remove entries for these
- files:
-
- ** MSAJT110.DLL
- ** MSAES110.DLL
- ** XBS110.DLL
- ** PDX110.DLL
- ** BTRV110.DLL
-
- These are the new entries for SETUPWIZ.INI.
- ----------------------------------------------------
- [ACCESS] ; Key used by Setup Wizard
- ; Jet database engine files
- file1=MSABC110.DLL
- file2=MSAJT200.DLL
- file3=VBDB300.DLL
- file4=SHARE.EXE:1 ; Jet database engine DLLs require
- ; 'SHARE.EXE /L:500' in AUTOEXEC.BAT
- file5=MSAJT112.DLL
-
-
- ; Files used by the Crystal Report (*.RPT) files
- [PDBJET.DLL]
- file1=PDBJET.DLL ; Jet database engine DLL for Crystal Reports
- file2=PDIRJET.DLL ; Jet database engine DLL for Crystal Reports
- file3=PDCTJET.DLL ; Jet database engine DLL for Crystal Reports
- file4=MSABC110.DLL ; Jet database engine DLL for Crystal Reports
- file5=MSAJT200.DLL ; Jet database engine DLL for Crystal Reports
- file6=VBDB300.DLL ; Visual Basic DLL for Crystal Reports
- file7=SHARE.EXE:1 ; Jet database engine DLLs require
- ; 'SHARE.EXE /L:500' in AUTOEXEC.BAT
- file8=MSAJT112.DLL ; Compatibility Layer
-
- -------------------------------------------------------------
- 6. Availability of Version 2.0 Jet Database Engine Features
- -------------------------------------------------------------
-
- This section lists new features of the version 2.0 Jet database
- engine and indicates whether you can take advantage of them in
- Visual Basic 3.0 when you use the Compatibility Layer.
-
- Cascading Updates and Deletes
- -----------------------------
-
- In Microsoft Access 2.0, you can specify that updates and/or
- deletions in referenced fields can be cascaded to all referencing
- tables. In Visual Basic 3.0, however, you can't specify cascading
- updates or deletes. Consequently, you must use Microsoft Access
- 2.0 to set this feature. Note that some errors generated from
- cascading updates and deletes are returned as reserved errors.
- Whenever possible, these new errors are mapped to existing errors.
-
- Table-Level Validation
- ----------------------
-
- Field- and record-level validation is now maintained by the Jet
- database engine. This includes setting table-level validation
- rules as well as default values. In Visual Basic 3.0, you can't
- set table-level validation rules or default values. Once these
- values are set by Microsoft Access 2.0, applications created in
- Visual Basic 3.0 will see the results. Violations of table-level
- validation rules generate reserved errors.
-
- Zero-Length Strings
- -------------------
-
- In Microsoft Access 2.0 databases, you can enter a zero- length
- string ("") to indicate data that is known but doesn't exist. A
- zero-length string is a string in a Text field containing no
- characters; it's not the same as Null. Visual Basic converts all
- zero-length strings to Null. There is no way to enter zero-length
- strings in Visual Basic 3.0. When table-level validation rules or
- default values have been set by Microsoft Access to enforce the
- entry of zero-length strings, Visual Basic 3.0 can't enter Null
- data into these fields.
-
-